package com.cskaoyan.app.util;

import com.cskaoyan.app.exception.ValidationException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;

/**
 * @author stone
 * @date 2022/09/08 10:28
 */
public class ValidationUtil {
    public static void valid(BindingResult bindingResult) throws ValidationException {
        if (bindingResult.hasFieldErrors()) {// 校验是否通过，如果没通过，这个方法返回值为true
            FieldError fieldError = bindingResult.getFieldError(); //拿到校验错误的成员变量以及对应的错误信息
            String field = fieldError.getField();// 成员变量名 → 请求参数名
            Object rejectedValue = fieldError.getRejectedValue();// 错误的值
            String defaultMessage = fieldError.getDefaultMessage();// 错误的message的信息
            StringBuffer sb = new StringBuffer();
            sb.append("请求参数").append(field).append("传入了错误的值").append(rejectedValue)
                    .append(":").append(defaultMessage);
            throw new ValidationException(sb.toString());
        }
    }

    public static void checkEmpty(Object... objects) throws ValidationException {
        for (Object object : objects) {
            if (object == null || "".equals(object)) {
                throw new ValidationException("存在空参数");
            }
        }
    }
}
